﻿function BT_Empresa() {

    this.MsgExito = "El registro se grabo correctamente";
    
    //Botones del toolbar
    this.BtnToolbar = {
        Nuevo: "#Nuevo"
    };


    //Botones del Formulario
    this.BtnFormulario = {
        Aceptar: "#Aceptar",
        Cancelar: "#Cancelar"
    };

    this.ToolbarC = {
        //Hace referencia al Objeto ToolbarC (Toolbar)
        obj: '',

        //Hace referencia al Objeto padre
        self: '',

        Init: function (self) {
            this.self = self;
            this.obj = self.Toolbar;

            this.obj.find(this.self.BtnToolbar.Nuevo).click(function () {
                self.Form.Load(self.IdEmpresa);
                self.Formulario.slideDown("slow");
                //self.DisplayFormulario(self, self.IdEmpresa)
            })

        }
    };

    //Listado de los registros
    this.Listar = function () {
        var self = this;

        $.ajax({
            type: "POST",
            data: { idempresa: this.IdEmpresa },
            url: self.URL_LISTA,
            cache: false,
            success: function (html) {
                //Mostrando la lista de los registros                        
                self.Lista.html(html);
            }
        });
    };

    ///Mostrando el formulario
    /*this.DisplayFormulario = function (self, idempresa) {
        self.Form.Load(self.IdEmpresa);
        if (self.DisplayForm == "slide") {
            self.Formulario.slideDown("slow");
        } else if (self.DisplayForm == "modal") {
            //Mostrando Como modal           
            self.Modal.prepend(self.Formulario);
            self.Modal.modal({
                overlayClose: true,
                onClose: function (d) {
                    var self = this;
                    d.container.animate(
        				{ top: "-" + (d.container.height() + 20) },
        				500,
        				function () {
        				    self.close();
        				}
                   );
                }
            });
        }
    };*/

    this.Form = {
        //Hace referencia al Objeto Form (Formulario)
        obj: '',

        //Hace referencia al Objeto padre
        self: '',

        //Cargando el formulario
        Load: function (IdEmpresa) {
            data = { idempresa: IdEmpresa };
            this.Onload(data);
        },

        Onload: function (data) {
            var self = this.self;
            $.ajax({
                type: "POST",
                data: data,
                url: self.URL_FORMULARIO,
                cache: false,
                success: function (html) {
                    //Pintando el formulario
                    self.Formulario.html(html);

                    //Obteniendo el formulario y seteandolo
                    var form = self.Formulario.find("form");
                    form.attr("action", self.URL_REGISTRAR);
                    self.Form.obj = form;

                }
            });
        },

        Init: function (self) {

            this.self = self;

            var form = self.Formulario.find("form");
            self.Form.obj = form;
            form.attr("action", self.URL_REGISTRAR);

            //form quitando
            form.expire();

            //Validando los datos antes de ser enviados
            self.Form.ValidateForm(form);

            //Configuracion del Envio de datos del formulario
            form.livequery('submit', function () {                
                //Si la validacion no es exitosa entonces no se realiza el submit
                /*if (!$(this).valid()) {
                    return false;
                }*/

                $(this).ajaxSubmit({
                    success: function (responseText, statusText, xhr, $form) {
                        //Listandom los registros
                        //if ((self.Lista) && (self.Lista != ""))
                        //    self.Listar();
                        
                        //Recargando el formulario y ocultandolo
                        self.Formulario.slideUp("slow", function () {
                            self.Form.Load();
                        });
                        //$('#msg-confirm-content').html(self.MsgExito).MsgAlert({ closeTime: 3000 });
                        $.jGrowl(self.MsgExito, {
                            life: 4000,
                            header: 'Aviso Importante',
                            beforeOpen: function() {
                            },
                            theme: 'alert'
                        });
                    }
                });
                return false;
            });

            //Configurando los botones
            //Funcion de Cancelar
            form.find(self.BtnFormulario.Cancelar).livequery("click", function () {
                self.Formulario.slideUp("slow", function () {
                    self.Form.Load();
                });
            });
        },

        //Validando los datos que esta ingresados en el formulario
        ValidateForm: function (form) {
            form.livequery(function () {
                $(this).validate({
                    rules: {
                        Nombre: {
                            required: true
                        },
                        Ruc: {
                            required: true
                        },
                        Telefono: {
                            required: true
                        },
                        Contacto: {
                            required: true
                        },
                        Descripcion: {
                            required: true
                        },
                        Direccion: {
                            required: true
                        }
                    },
                    messages: {
                        Nombre: {
                            required: "Coloque la razón social"
                        },
                        Ruc: {
                            required: "Coloque el ruc"
                        },
                        Telefono: {
                            required: "Coloque su telefono"
                        },
                        Contacto: {
                            required: "Coloque el contacto"
                        },
                        Descripcion: {
                            required: "Coloque una descripcion"
                        },
                        Direccion: {
                            required: "Coloque una dirección"
                        }
                    }
                });
            });
        }
    };

    this.Init = function (data) {
        var self = this;

        //Contenedor
        this.Container = data.Container;

        //Sub-Contenedor
        this.Toolbar = data.Toolbar;
        this.Lista = data.Lista;
        this.Formulario = data.Formulario;
        this.Modal = data.Modal;

        //URL
        this.URL_LISTA = data.URL_LISTA;
        this.URL_FORMULARIO = data.URL_FORMULARIO;
        this.URL_REGISTRAR = data.URL_REGISTRAR;
        this.URL_ELIMINAR = data.URL_ELIMINAR;

        //Visualizacion de Formularios
        this.DisplayForm = data.DisplayForm;

        //Parametros
        this.IdEmpresa = data.IdEmpresa;
        this.IdOferta = data.IdOferta;


        //Inicializando datos        
        if (self.Container.find(self.Lista))
            self.Lista = self.Container.find(self.Lista);
        if (self.Container.find(self.Toolbar))
            self.Toolbar = self.Container.find(self.Toolbar);
        if (self.Container.find(self.Formulario))
            self.Formulario = self.Container.find(self.Formulario);
        if (self.Container.find(self.Modal))
            self.Modal = self.Container.find(self.Modal);

        //Inicializando el formulario
        self.Form.Init(self);
        self.ToolbarC.Init(self);
    };
}
